/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package entidades;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;

/**
 *
 * @author Utilizador
 */
@Entity
@Table(name = "ARMAZEM")
@NamedQuery(name = "findAllArmazens", query = "SELECT a FROM Armazem a")

public class Armazem implements Serializable {
    

    @Id
    private int id;
   
    @OneToOne

    private Farmacia farmacia;
   
    @OneToMany(mappedBy = "armazem")

    private List<ProdutoFisico> listaProdutosFisicos;
    
    @OneToMany(mappedBy = "armazem")

    private List<Stock> stocks;
    
    @OneToMany(mappedBy = "armazem")

    private List<FuncionarioArmazem> listaFuncionariosArmazem;
    
    public Armazem(int id, Farmacia farmacia) {
        this.id = id;
        this.farmacia = farmacia;
        this.stocks = new ArrayList<>();
        this.listaProdutosFisicos =  new ArrayList<>();
        this.listaFuncionariosArmazem = new ArrayList<>();
    }
    
    
        public Armazem(int id) {
        this.id = id;
        this.stocks = new ArrayList<>();
        this.listaProdutosFisicos =  new ArrayList<>();
        this.listaFuncionariosArmazem = new ArrayList<>();
    }
    
    public Armazem() {
    
    }

    public int getId() {
        return id;
    }

    public Farmacia getFarmacia() {
        return farmacia;
    }

    public void setFarmacia(Farmacia farmacia) {
        this.farmacia = farmacia;
    }

    public void setId(int id) {
        this.id = id;
    }

    public List<ProdutoFisico> getListaProdutosFisicos() {
        return listaProdutosFisicos;
    }

    public void setListaProdutosFisicos(List<ProdutoFisico> listaProdutosFisicos) {
        this.listaProdutosFisicos = listaProdutosFisicos;
    }

    public List<Stock> getStocks() {
        return stocks;
    }

    public void setStocks(List<Stock> stocks) {
        this.stocks = stocks;
    }

    public List<FuncionarioArmazem> getListaFuncionariosArmazem() {
        return listaFuncionariosArmazem;
    }

    public void setListaFuncionariosArmazem(List<FuncionarioArmazem> listaFuncionariosArmazem) {
        this.listaFuncionariosArmazem = listaFuncionariosArmazem;
    }

    
    
    
}
